package com.ruoyi.wisdom.domain.swap;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Transient;

import java.util.Date;

/**
 * 进出记录对象 iot_pick_record
 * 
 * @author ruoyi
 * @date 2025-01-02
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class SwapPickRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 记录ID */
    @Excel(name = "记录ID")
    @JsonProperty("com_id")
    private Long comId;

    /** 设备序列号 */
    @Excel(name = "设备序列号")
    @JsonProperty("device_no")
    private String deviceNo;

    /** 人脸序号 */
    @Excel(name = "人脸序号")
    private String facecode;

    /** 用户id  (平台用户就对应uid 要是学生就对应id) */
    @Excel(name = "用户id  (平台用户就对应uid 要是学生就对应id)")
    private Long uuid;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    private String name;

    /** 1 教职业工  2学生  3家属 4其他人员 0是识别失败人员 */
    @Excel(name = "1 教职业工  2学生  3家属 4其他人员 0是识别失败人员")
    @JsonProperty("person_type")
    private Integer personType;

    /** 1 入  2出 */
    @Excel(name = "1 入  2出")
    private Integer type;

    /** 识别时间 */
    @JsonProperty("face_time")
    private String faceTime;

    /** 捕捉图 */
    @Excel(name = "捕捉图")
    private String picture;

    /** 位置 */
    @Excel(name = "位置")
    private String location;

    /** 同步状态 0 未同步 1 已经同步 */
    @Excel(name = "同步状态 0 未同步 1 已经同步")
    private Integer syn;

    /** 是否已经推送 */
    @Excel(name = "是否已经推送")
    @JsonProperty("is_push")
    private Integer isPush;

    /** 推送次数 推送超过3次不再推送 */
    @Excel(name = "推送次数 推送超过3次不再推送")
    @JsonProperty("push_num")
    private Integer pushNum;

    /** 学生年级班级关联id */
    @Excel(name = "学生年级班级关联id")
    @JsonProperty("relation_id")
    private Long relationId;

    /** 温度 */
    @Excel(name = "温度")
    private String temperature;

    /** 是否已经推送图片 0未推送 1已推送 */
    @Excel(name = "是否已经推送图片 0未推送 1已推送")
    @JsonProperty("is_push_picture")
    private Integer isPushPicture;

    /** 楼宇ID */
    @Excel(name = "楼宇ID")
    @JsonProperty("building_id")
    private Long buildingId;

    /** 0 不带口罩 1带口罩 */
    @Excel(name = "0 不带口罩 1带口罩")
    private Integer mask;

    /** 相似度 */
    @Excel(name = "相似度")
    private String similar;

    /** hash */
    @Excel(name = "hash")
    private String hash;

    @Transient
    private String startTime;

    @Transient
    private String endTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setComId(Long comId) 
    {
        this.comId = comId;
    }

    public Long getComId() 
    {
        return comId;
    }
    public void setDeviceNo(String deviceNo) 
    {
        this.deviceNo = deviceNo;
    }

    public String getDeviceNo() 
    {
        return deviceNo;
    }
    public void setFacecode(String facecode) 
    {
        this.facecode = facecode;
    }

    public String getFacecode() 
    {
        return facecode;
    }
    public void setUuid(Long uuid) 
    {
        this.uuid = uuid;
    }

    public Long getUuid() 
    {
        return uuid;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setPersonType(Integer personType) 
    {
        this.personType = personType;
    }

    public Integer getPersonType() 
    {
        return personType;
    }
    public void setType(Integer type) 
    {
        this.type = type;
    }

    public Integer getType() 
    {
        return type;
    }
    public void setFaceTime(String faceTime)
    {
        this.faceTime = faceTime;
    }

    public String getFaceTime()
    {
        return faceTime;
    }
    public void setPicture(String picture) 
    {
        this.picture = picture;
    }

    public String getPicture() 
    {
        return picture;
    }
    public void setLocation(String location) 
    {
        this.location = location;
    }

    public String getLocation() 
    {
        return location;
    }
    public void setSyn(Integer syn) 
    {
        this.syn = syn;
    }

    public Integer getSyn() 
    {
        return syn;
    }
    public void setIsPush(Integer isPush) 
    {
        this.isPush = isPush;
    }

    public Integer getIsPush() 
    {
        return isPush;
    }
    public void setPushNum(Integer pushNum) 
    {
        this.pushNum = pushNum;
    }

    public Integer getPushNum() 
    {
        return pushNum;
    }
    public void setRelationId(Long relationId) 
    {
        this.relationId = relationId;
    }

    public Long getRelationId() 
    {
        return relationId;
    }
    public void setTemperature(String temperature) 
    {
        this.temperature = temperature;
    }

    public String getTemperature() 
    {
        return temperature;
    }
    public void setIsPushPicture(Integer isPushPicture) 
    {
        this.isPushPicture = isPushPicture;
    }

    public Integer getIsPushPicture() 
    {
        return isPushPicture;
    }
    public void setBuildingId(Long buildingId) 
    {
        this.buildingId = buildingId;
    }

    public Long getBuildingId() 
    {
        return buildingId;
    }
    public void setMask(Integer mask) 
    {
        this.mask = mask;
    }

    public Integer getMask() 
    {
        return mask;
    }
    public void setSimilar(String similar) 
    {
        this.similar = similar;
    }

    public String getSimilar() 
    {
        return similar;
    }
    public void setHash(String hash) 
    {
        this.hash = hash;
    }

    public String getHash() 
    {
        return hash;
    }

    public void setStartTime(String startTime) { this.startTime = startTime; }
    public String getStartTime() { return startTime; }

    public void setEndTime(String endTime){ this.endTime = endTime; }
    public String getEndTime() { return endTime; }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("comId", getComId())
            .append("deviceNo", getDeviceNo())
            .append("facecode", getFacecode())
            .append("uuid", getUuid())
            .append("name", getName())
            .append("personType", getPersonType())
            .append("type", getType())
            .append("faceTime", getFaceTime())
            .append("picture", getPicture())
            .append("location", getLocation())
            .append("syn", getSyn())
            .append("isPush", getIsPush())
            .append("pushNum", getPushNum())
            .append("relationId", getRelationId())
            .append("temperature", getTemperature())
            .append("isPushPicture", getIsPushPicture())
            .append("buildingId", getBuildingId())
            .append("mask", getMask())
            .append("similar", getSimilar())
            .append("hash", getHash())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .toString();
    }
}
